package uba.algo3.tp3.tsp;

import java.util.ArrayList;

public class Grafo
{

	public int n;
	public int[][] matriz;
	public int orig;
	
	public Grafo(int n, int orig)
	{
        this.n = n;
        this.orig = orig;
        matriz = new int[n][n]; 
	}
	
	public int getN()
	{
		return n;
	}
	
	public int getOrig()
	{
		return orig;
	}
	
	public int calcular_costo(ArrayList<Integer> solucion_parcial)
	{
		
		int costo_total = 0;
		int anterior,actual;
		anterior = solucion_parcial.get(0);
		
		for(int i = 1;i < solucion_parcial.size(); i++)
		{
			actual = solucion_parcial.get(i);
			costo_total = costo_total + matriz[anterior-1][actual-1];
			anterior = actual;
		}
		
		return (costo_total + matriz[anterior-1][solucion_parcial.get(0)-1]);
	}
	
	public ArrayList<Integer> getComplemento(ArrayList<Integer> solucion_parcial)
	{
		ArrayList<Integer> solucion_parcial_complemento = new ArrayList<Integer>();
		solucion_parcial_complemento.add(solucion_parcial.get(0)); 
		for(int i=1; i<=n; i++)
		{
			if(!solucion_parcial.contains(i)){
				solucion_parcial_complemento.add(i);
			}
		}
		return solucion_parcial_complemento;
	}
}
